package edu.psu.geovista.app.pcp.plot.control.tools;

import edu.psu.geovista.classification.ClassificationResultItf;
import edu.psu.geovista.ui.event.FreezeEvent;
import edu.psu.geovista.ui.event.SelectionEvent;

import java.awt.*;
import java.util.HashSet;

/*
 * GeoVISTA Center (Penn State, Dept. of Geography)
 * Copyright (c), 2003-2011,  Jin Chen and Alan M. MacEachren, GeoVISTA Center, Penn State University
  * Licensed under Simplified BSD License
 *
 *
 * @author: jin Chen 
 * @date: Mar 8, 2005$
 * @version: 1.0
 */

public interface DataModeActor {
    /**
     * In normal mode, simply fire given id
     * In summary mode, need convert given summary id to data id
     * @param id
     */
    void fireIndicationChange(int id);
    /**
     * process a external indication event
     * if pcp in on summary mode, it does not make sense to highlight a summary line upon external source(e.g.Map) indicate a single record
     */
    void processIndication(int id,int x, int y) ;
    //boolean showAnimationData(int id,boolean renew) ;
    /**
     * act on a external selectevent
     *  
     */
    void processSelection(SelectionEvent e);

    void processFreeze(FreezeEvent e);
    /**
     * act on (external) classificationEvent.
     *  
     *  
     * @param cr
     */
    void processClassification(ClassificationResultItf cr) ;
    /**
     * - set colors
     * - set ids
     */
    void updateOnSwitchMode();
    /**
     * change lines' color to matach to colors of other components
     *  
     *  
     *  
     * @param colors
     */
    void setDataLayerColors(Color[] colors);


    /**
     *  
     *  
     * @param summaryIds  id (index) of record in summary datamodel,
     * @return
     */
    int[] getMemberIds(HashSet summaryIds);


}
